#coding=utf-8
''' pandas 的 DataFrame的创建和使用'''

import numpy as np
import pandas as pd

#创建函数 pandas.DataFrame( data, index, columns, dtype, copy)

'''
Pandas数据帧(DataFrame)可以使用各种输入创建，如 - 
列表
字典
系列
Numpy ndarrays
另一个数据帧(DataFrame)
'''
'''
#使用列表创建
print("使用列表创建",16*"--")
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
print(df)

#通过字典来创建
print("通过字典来创建",16*"--")
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df1 = pd.DataFrame(data)
print(df1)

'''
#通过字典系列来创建
print("通过字典系列来创建",16*"--")
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
      'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df2 = pd.DataFrame(d)
print(df2)

print("列选择",16*"--")
print(df2['one'])
print("列添加",16*"--")
df2['three']=pd.Series([10,20,30],index=['a','b','c'])
print(df2)
print("列删除",16*"--")
# del df2['one']
df2.pop('one')
print(df2)

print("行选择",16*"--")
#可以通过将行标签传递给loc()函数来选择行
print(df2.loc['a'])
#可以通过将整数位置传递给iloc()函数来选择行
print(df2.iloc[0])
# 行切片，可以使用:运算符选择多行
print(df2[2:4])
print("行添加",16*"--")
df3=pd.DataFrame([[10,40],[30,50]],index=['e','f'],columns=['two','three'])
print(df3)
# 使用append()函数将新行添加到DataFrame，并返回添加后的新DataFrame
# df2=pd.concat([df2,df3])
# df2=df2.append(df3,ignore_index=True)
df2=df2.append(df3)
print(df2)
print("行删除",16*"--")
df2=df2.drop('a')
print(df2)

